使用 Qt Console 连接到现有的 IPython 内核#

前端/内核模型#

传统的 IPython (ipython) 由单个进程组成,该进程将基于终端的用户界面与运行用户代码的进程结合在一起。

虽然这种传统的应用程序仍然存在,但现代的 Jupyter 由两个进程组成:

  • 内核:这是运行用户代码的进程。

  • 前端:这是提供用户界面的进程,用户在此处键入代码并查看结果。

Jupyter 目前有 3 种前端:

  • 终端控制台 (jupyter console)

  • Qt 控制台 (jupyter qtconsole)

  • Notebook (jupyter notebook)

内核和前端通过基于 ZeroMQ/JSON 的消息传递协议进行通信,这允许多个前端(甚至不同类型的前端)与单个内核通信。这为各种有趣的应用打开了大门,例如将一个控制台或 Qt 控制台连接到 Notebook 的内核。举个例子,你可能希望将一个 Qt 控制台连接到你的 Notebook 内核,并将其用作帮助浏览器,在 Qt 控制台中对对象调用 ??(其分页器比 Notebook 中的更灵活)。

这篇 Notebook 描述了如何将另一个前端连接到与某个 Notebook 相关联的 IPython 内核。这里给出的命令目前特定于 IPython 内核。

手动连接#

要手动将另一个前端连接到内核,你首先需要使用 %connect_info 魔术命令找出内核的连接信息。

[ ]:
%connect_info

你可以看到,这个魔术命令显示了连接到此 Notebook 内核所需的一切信息。

使用新的 Qt 控制台自动连接#

你也可以使用 %qtconsole 魔术命令启动一个新的 Qt 控制台并连接到你当前的内核。这将自动检测必要的连接信息并为你启动 Qt 控制台。

[ ]:
a = 10
[ ]:
%qtconsole